home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / GAS_1_38.ARJ / VAXOPCOD.H < prev    next >
C/C++ Source or Header  |  1990-10-11  |  14KB  |  383 lines

  1. /* Vax opcde list.
  2.    Copyright (C) 1989, Free Software Foundation, Inc.
  3.  
  4. This file is part of GDB and GAS.
  5.  
  6. GDB and GAS are free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 1, or (at your option)
  9. any later version.
  10.  
  11. GDB and GAS are distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with GDB or GAS; see the file COPYING.  If not, write to
  18. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  19.  
  20. #ifndef vax_opcodeT
  21. #define vax_opcodeT int
  22. #endif /* no vax_opcodeT */
  23.  
  24. struct vot_wot            /* vax opcode table: wot to do with this */
  25.                 /* particular opcode */
  26. {
  27.   char *            args;    /* how to compile said opcode */
  28.   vax_opcodeT       code;    /* op-code (may be > 8 bits!) */
  29. };
  30.  
  31. struct vot            /* vax opcode text */
  32. {
  33.   char *            name;    /* opcode name: lowercase string  [key]  */
  34.   struct vot_wot    detail;    /* rest of opcode table          [datum] */
  35. };
  36.  
  37. #define vot_how args
  38. #define vot_code code
  39. #define vot_detail detail
  40. #define vot_name name
  41.  
  42. static const struct vot
  43. votstrs[] =
  44. {
  45. {    "halt",    {"",            0x00    } },
  46. {    "nop",    {"",            0x01    } },
  47. {    "rei",    {"",            0x02    } },
  48. {    "bpt",    {"",            0x03    } },
  49. {    "ret",    {"",            0x04    } },
  50. {    "rsb",    {"",            0x05    } },
  51. {    "ldpctx",    {"",            0x06    } },
  52. {    "svpctx",    {"",            0x07    } },
  53. {    "cvtps",    {"rwabrwab",        0x08    } },
  54. {    "cvtsp",    {"rwabrwab",        0x09    } },
  55. {    "index",    {"rlrlrlrlrlwl",    0x0a    } },
  56. {    "crc",    {"abrlrwab",        0x0b    } },
  57. {    "prober",    {"rbrwab",        0x0c    } },
  58. {    "probew",    {"rbrwab",            0x0d    } },
  59. {    "insque",    {"abab",        0x0e    } },
  60. {    "remque",    {"abwl",        0x0f    } },
  61. {    "bsbb",    {"bb",            0x10    } },
  62. {    "brb",    {"bb",            0x11    } },
  63. {    "bneq",    {"bb",            0x12    } },
  64. {    "bnequ",    {"bb",            0x12    } },
  65. {    "beql",    {"bb",            0x13    } },
  66. {    "beqlu",    {"bb",            0x13    } },
  67. {    "bgtr",    {"bb",            0x14    } },
  68. {    "bleq",    {"bb",            0x15    } },
  69. {    "jsb",    {"ab",            0x16    } },
  70. {    "jmp",    {"ab",            0x17    } },
  71. {    "bgeq",    {"bb",            0x18    } },
  72. {    "blss",    {"bb",            0x19    } },
  73. {    "bgtru",    {"bb",            0x1a    } },
  74. {    "blequ",    {"bb",            0x1b    } },
  75. {    "bvc",    {"bb",            0x1c    } },
  76. {    "bvs",    {"bb",            0x1d    } },
  77. {    "bcc",    {"bb",            0x1e    } },
  78. {    "bgequ",    {"bb",            0x1e    } },
  79. {    "blssu",    {"bb",            0x1f    } },
  80. {    "bcs",    {"bb",            0x1f    } },
  81. {    "addp4",    {"rwabrwab",        0x20    } },
  82. {    "addp6",    {"rwabrwabrwab",    0x21    } },
  83. {    "subp4",    {"rwabrwab",        0x22    } },
  84. {    "subp6",    {"rwabrwabrwab",    0x23    } },
  85. {    "cvtpt",    {"rwababrwab",        0x24    } },
  86. {    "mulp",    {"rwabrwabrwab",    0x25    } },
  87. {    "cvttp",    {"rwababrwab",        0x26    } },
  88. {    "divp",    {"rwabrwabrwab",    0x27    } },
  89. {    "movc3",    {"rwabab",        0x28    } },
  90. {    "cmpc3",    {"rwabab",        0x29    } },
  91. {    "scanc",    {"rwababrb",        0x2a    } },
  92. {    "spanc",    {"rwababrb",        0x2b    } },
  93. {    "movc5",    {"rwabrbrwab",        0x2c    } },
  94. {    "cmpc5",    {"rwabrbrwab",        0x2d    } },
  95. {    "movtc",    {"rwabrbabrwab",    0x2e    } },
  96. {    "movtuc",    {"rwabrbabrwab",    0x2f    } },
  97. {    "bsbw",    {"bw",            0x30    } },
  98. {    "brw",    {"bw",            0x31    } },
  99. {    "cvtwl",    {"rwwl",        0x32    } },
  100. {    "cvtwb",    {"rwwb",        0x33    } },
  101. {    "movp",    {"rwabab",        0x34    } },
  102. {    "cmpp3",    {"rwabab",        0x35    } },
  103. {    "cvtpl",    {"rwabwl",        0x36    } },
  104. {    "cmpp4",    {"rwabrwab",        0x37    } },
  105. {    "editpc",    {"rwababab",        0x38    } },
  106. {    "matchc",    {"rwabrwab",        0x39    } },
  107. {    "locc",    {"rbrwab",        0x3a    } },
  108. {    "skpc",    {"rbrwab",        0x3b    } },
  109. {    "movzwl",    {"rwwl",        0x3c    } },
  110. {    "acbw",    {"rwrwmwbw",        0x3d    } },
  111. {    "movaw",    {"awwl",        0x3e    } },
  112. {    "pushaw",    {"aw",            0x3f    } },
  113. {    "addf2",    {"rfmf",        0x40    } },
  114. {    "addf3",    {"rfrfwf",        0x41    } },
  115. {    "subf2",    {"rfmf",        0x42    } },
  116. {    "subf3",    {"rfrfwf",        0x43    } },
  117. {    "mulf2",    {"rfmf",        0x44    } },
  118. {    "mulf3",    {"rfrfwf",        0x45    } },
  119. {    "divf2",    {"rfmf",        0x46    } },
  120. {    "divf3",    {"rfrfwf",        0x47    } },
  121. {    "cvtfb",    {"rfwb",        0x48    } },
  122. {    "cvtfw",    {"rfww",        0x49    } },
  123. {    "cvtfl",    {"rfwl",        0x4a    } },
  124. {    "cvtrfl",    {"rfwl",        0x4b    } },
  125. {    "cvtbf",    {"rbwf",        0x4c    } },
  126. {    "cvtwf",    {"rwwf",        0x4d    } },
  127. {    "cvtlf",    {"rlwf",        0x4e    } },
  128. {    "acbf",    {"rfrfmfbw",        0x4f    } },
  129. {    "movf",    {"rfwf",        0x50    } },
  130. {    "cmpf",    {"rfrf",        0x51    } },
  131. {    "mnegf",    {"rfwf",        0x52    } },
  132. {    "tstf",    {"rf",            0x53    } },
  133. {    "emodf",    {"rfrbrfwlwf",        0x54    } },
  134. {    "polyf",    {"rfrwab",        0x55    } },
  135. {    "cvtfd",    {"rfwd",        0x56    } },
  136.                                         /* opcode 57 is not defined yet */
  137. {    "adawi",    {"rwmw",        0x58    } },
  138.                                         /* opcode 59 is not defined yet */
  139.                                         /* opcode 5a is not defined yet */
  140.                                         /* opcode 5b is not defined yet */
  141. {    "insqhi",    {"abaq",        0x5c    } },
  142. {    "insqti",    {"abaq",        0x5d    } },
  143. {    "remqhi",    {"aqwl",        0x5e    } },
  144. {    "remqti",    {"aqwl",        0x5f    } },
  145. {    "addd2",    {"rdmd",        0x60    } },
  146. {    "addd3",    {"rdrdwd",        0x61    } },
  147. {    "subd2",    {"rdmd",        0x62    } },
  148. {    "subd3",    {"rdrdwd",        0x63    } },
  149. {    "muld2",    {"rdmd",        0x64    } },
  150. {    "muld3",    {"rdrdwd",        0x65    } },
  151. {    "divd2",    {"rdmd",        0x66    } },
  152. {    "divd3",    {"rdrdwd",        0x67    } },
  153. {    "cvtdb",    {"rdwb",        0x68    } },
  154. {    "cvtdw",    {"rdww",        0x69    } },
  155. {    "cvtdl",    {"rdwl",        0x6a    } },
  156. {    "cvtrdl",    {"rdwl",        0x6b    } },
  157. {    "cvtbd",    {"rbwd",        0x6c    } },
  158. {    "cvtwd",    {"rwwd",        0x6d    } },
  159. {    "cvtld",    {"rlwd",        0x6e    } },
  160. {    "acbd",    {"rdrdmdbw",        0x6f    } },
  161. {    "movd",    {"rdwd",        0x70    } },
  162. {    "cmpd",    {"rdrd",        0x71    } },
  163. {    "mnegd",    {"rdwd",        0x72    } },
  164. {    "tstd",    {"rd",            0x73    } },
  165. {    "emodd",    {"rdrbrdwlwd",        0x74    } },
  166. {    "polyd",    {"rdrwab",        0x75    } },
  167. {    "cvtdf",    {"rdwf",        0x76    } },
  168.                                         /* opcode 77 is not defined yet */
  169. {    "ashl",    {"rbrlwl",        0x78    } },
  170. {    "ashq",    {"rbrqwq",        0x79    } },
  171. {    "emul",    {"rlrlrlwq",        0x7a    } },
  172. {    "ediv",    {"rlrqwlwl",        0x7b    } },
  173. {    "clrd",    {"wd",            0x7c    } },
  174. {    "clrg",    {"wg",            0x7c    } },
  175. {    "clrq",    {"wd",            0x7c    } },
  176. {    "movq",    {"rqwq",        0x7d    } },
  177. {    "movaq",    {"aqwl",        0x7e    } },
  178. {    "movad",    {"adwl",        0x7e    } },
  179. {    "pushaq",    {"aq",            0x7f    } },
  180. {    "pushad",    {"ad",            0x7f    } },
  181. {    "addb2",    {"rbmb",        0x80    } },
  182. {    "addb3",    {"rbrbwb",        0x81    } },
  183. {    "subb2",    {"rbmb",        0x82    } },
  184. {    "subb3",    {"rbrbwb",        0x83    } },
  185. {    "mulb2",    {"rbmb",        0x84    } },
  186. {    "mulb3",    {"rbrbwb",        0x85    } },
  187. {    "divb2",    {"rbmb",        0x86    } },
  188. {    "divb3",    {"rbrbwb",        0x87    } },
  189. {    "bisb2",    {"rbmb",        0x88    } },
  190. {    "bisb3",    {"rbrbwb",        0x89    } },
  191. {    "bicb2",    {"rbmb",        0x8a    } },
  192. {    "bicb3",    {"rbrbwb",        0x8b    } },
  193. {    "xorb2",    {"rbmb",        0x8c    } },
  194. {    "xorb3",    {"rbrbwb",        0x8d    } },
  195. {    "mnegb",    {"rbwb",        0x8e    } },
  196. {    "caseb",    {"rbrbrb",        0x8f    } },
  197. {    "movb",    {"rbwb",        0x90    } },
  198. {    "cmpb",    {"rbrb",        0x91    } },
  199. {    "mcomb",    {"rbwb",        0x92    } },
  200. {    "bitb",    {"rbrb",        0x93    } },
  201. {    "clrb",    {"wb",            0x94    } },
  202. {    "tstb",    {"rb",            0x95    } },
  203. {    "incb",    {"mb",            0x96    } },
  204. {    "decb",    {"mb",            0x97    } },
  205. {    "cvtbl",    {"rbwl",        0x98    } },
  206. {    "cvtbw",    {"rbww",        0x99    } },
  207. {    "movzbl",    {"rbwl",        0x9a    } },
  208. {    "movzbw",    {"rbww",        0x9b    } },
  209. {    "rotl",    {"rbrlwl",        0x9c    } },
  210. {    "acbb",    {"rbrbmbbw",        0x9d    } },
  211. {    "movab",    {"abwl",        0x9e    } },
  212. {    "pushab",    {"ab",            0x9f    } },
  213. {    "addw2",    {"rwmw",        0xa0    } },
  214. {    "addw3",    {"rwrwww",        0xa1    } },
  215. {    "subw2",    {"rwmw",        0xa2    } },
  216. {    "subw3",    {"rwrwww",        0xa3    } },
  217. {    "mulw2",    {"rwmw",        0xa4    } },
  218. {    "mulw3",    {"rwrwww",        0xa5    } },
  219. {    "divw2",    {"rwmw",        0xa6    } },
  220. {    "divw3",    {"rwrwww",        0xa7    } },
  221. {    "bisw2",    {"rwmw",        0xa8    } },
  222. {    "bisw3",    {"rwrwww",        0xa9    } },
  223. {    "bicw2",    {"rwmw",        0xaa    } },
  224. {    "bicw3",    {"rwrwww",        0xab    } },
  225. {    "xorw2",    {"rwmw",        0xac    } },
  226. {    "xorw3",    {"rwrwww",        0xad    } },
  227. {    "mnegw",    {"rwww",        0xae    } },
  228. {    "casew",    {"rwrwrw",        0xaf    } },
  229. {    "movw",    {"rwww",        0xb0    } },
  230. {    "cmpw",    {"rwrw",        0xb1    } },
  231. {    "mcomw",    {"rwww",        0xb2    } },
  232. {    "bitw",    {"rwrw",        0xb3    } },
  233. {    "clrw",    {"ww",            0xb4    } },
  234. {    "tstw",    {"rw",            0xb5    } },
  235. {    "incw",    {"mw",            0xb6    } },
  236. {    "decw",    {"mw",            0xb7    } },
  237. {    "bispsw",    {"rw",            0xb8    } },
  238. {    "bicpsw",    {"rw",            0xb9    } },
  239. {    "popr",    {"rw",            0xba    } },
  240. {    "pushr",    {"rw",            0xbb    } },
  241. {    "chmk",    {"rw",            0xbc    } },
  242. {    "chme",    {"rw",            0xbd    } },
  243. {    "chms",    {"rw",            0xbe    } },
  244. {    "chmu",    {"rw",            0xbf    } },
  245. {    "addl2",    {"rlml",        0xc0    } },
  246. {    "addl3",    {"rlrlwl",        0xc1    } },
  247. {    "subl2",    {"rlml",        0xc2    } },
  248. {    "subl3",    {"rlrlwl",        0xc3    } },
  249. {    "mull2",    {"rlml",        0xc4    } },
  250. {    "mull3",    {"rlrlwl",        0xc5    } },
  251. {    "divl2",    {"rlml",        0xc6    } },
  252. {    "divl3",    {"rlrlwl",        0xc7    } },
  253. {    "bisl2",    {"rlml",        0xc8    } },
  254. {    "bisl3",    {"rlrlwl",        0xc9    } },
  255. {    "bicl2",    {"rlml",        0xca    } },
  256. {    "bicl3",    {"rlrlwl",        0xcb    } },
  257. {    "xorl2",    {"rlml",        0xcc    } },
  258. {    "xorl3",    {"rlrlwl",        0xcd    } },
  259. {    "mnegl",    {"rlwl",        0xce    } },
  260. {    "casel",    {"rlrlrl",        0xcf    } },
  261. {    "movl",    {"rlwl",        0xd0    } },
  262. {    "cmpl",    {"rlrl",        0xd1    } },
  263. {    "mcoml",    {"rlwl",        0xd2    } },
  264. {    "bitl",    {"rlrl",        0xd3    } },
  265. {    "clrf",    {"wf",            0xd4    } },
  266. {    "clrl",    {"wl",            0xd4    } },
  267. {    "tstl",    {"rl",            0xd5    } },
  268. {    "incl",    {"ml",            0xd6    } },
  269. {    "decl",    {"ml",            0xd7    } },
  270. {    "adwc",    {"rlml",        0xd8    } },
  271. {    "sbwc",    {"rlml",        0xd9    } },
  272. {    "mtpr",    {"rlrl",        0xda    } },
  273. {    "mfpr",    {"rlwl",        0xdb    } },
  274. {    "movpsl",    {"wl",            0xdc    } },
  275. {    "pushl",    {"rl",            0xdd    } },
  276. {    "moval",    {"alwl",        0xde    } },
  277. {    "movaf",    {"afwl",        0xde    } },
  278. {    "pushal",    {"al",            0xdf    } },
  279. {    "pushaf",    {"af",            0xdf    } },
  280. {    "bbs",    {"rlabbb",        0xe0    } },
  281. {    "bbc",    {"rlabbb",        0xe1    } },
  282. {    "bbss",    {"rlabbb",        0xe2    } },
  283. {    "bbcs",    {"rlabbb",        0xe3    } },
  284. {    "bbsc",    {"rlabbb",        0xe4    } },
  285. {    "bbcc",    {"rlabbb",        0xe5    } },
  286. {    "bbssi",    {"rlabbb",        0xe6    } },
  287. {    "bbcci",    {"rlabbb",        0xe7    } },
  288. {    "blbs",    {"rlbb",        0xe8    } },
  289. {    "blbc",    {"rlbb",        0xe9    } },
  290. {    "ffs",    {"rlrbvbwl",        0xea    } },
  291. {    "ffc",    {"rlrbvbwl",        0xeb    } },
  292. {    "cmpv",    {"rlrbvbrl",        0xec    } },
  293. {    "cmpzv",    {"rlrbvbrl",        0xed    } },
  294. {    "extv",    {"rlrbvbwl",        0xee    } },
  295. {    "extzv",    {"rlrbvbwl",        0xef    } },
  296. {    "insv",    {"rlrlrbvb",        0xf0    } },
  297. {    "acbl",    {"rlrlmlbw",        0xf1    } },
  298. {    "aoblss",    {"rlmlbb",        0xf2    } },
  299. {    "aobleq",    {"rlmlbb",        0xf3    } },
  300. {    "sobgeq",    {"mlbb",        0xf4    } },
  301. {    "sobgtr",    {"mlbb",        0xf5    } },
  302. {    "cvtlb",    {"rlwb",        0xf6    } },
  303. {    "cvtlw",    {"rlww",        0xf7    } },
  304. {    "ashp",    {"rbrwabrbrwab",    0xf8    } },
  305. {    "cvtlp",    {"rlrwab",        0xf9    } },
  306. {    "callg",    {"abab",        0xfa    } },
  307. {    "calls",    {"rlab",        0xfb    } },
  308. {    "xfc",    {"",            0xfc    } },
  309.                                         /* undefined opcodes here */
  310. {    "cvtdh",    {"rdwh",        0x32fd    } },
  311. {    "cvtgf",    {"rgwh",        0x33fd    } },
  312. {    "addg2",    {"rgmg",        0x40fd    } },
  313. {    "addg3",    {"rgrgwg",        0x41fd    } },
  314. {    "subg2",    {"rgmg",        0x42fd    } },
  315. {    "subg3",    {"rgrgwg",        0x43fd    } },
  316. {    "mulg2",    {"rgmg",        0x44fd    } },
  317. {    "mulg3",    {"rgrgwg",        0x45fd    } },
  318. {    "divg2",    {"rgmg",        0x46fd    } },
  319. {    "divg3",    {"rgrgwg",        0x47fd    } },
  320. {    "cvtgb",    {"rgwb",        0x48fd    } },
  321. {    "cvtgw",    {"rgww",        0x49fd    } },
  322. {    "cvtgl",    {"rgwl",        0x4afd    } },
  323. {    "cvtrgl",    {"rgwl",        0x4bfd    } },
  324. {    "cvtbg",    {"rbwg",        0x4cfd    } },
  325. {    "cvtwg",    {"rwwg",        0x4dfd    } },
  326. {    "cvtlg",    {"rlwg",        0x4efd    } },
  327. {    "acbg",    {"rgrgmgbw",        0x4ffd    } },
  328. {    "movg",    {"rgwg",        0x50fd    } },
  329. {    "cmpg",    {"rgrg",        0x51fd    } },
  330. {    "mnegg",    {"rgwg",        0x52fd    } },
  331. {    "tstg",    {"rg",            0x53fd    } },
  332. {    "emodg",    {"rgrwrgwlwg",        0x54fd    } },
  333. {    "polyg",    {"rgrwab",        0x55fd    } },
  334. {    "cvtgh",    {"rgwh",        0x56fd    } },
  335.                                         /* undefined opcodes here */
  336. {    "addh2",    {"rhmh",        0x60fd    } },
  337. {    "addh3",    {"rhrhwh",        0x61fd    } },
  338. {    "subh2",    {"rhmh",        0x62fd    } },
  339. {    "subh3",    {"rhrhwh",        0x63fd    } },
  340. {    "mulh2",    {"rhmh",        0x64fd    } },
  341. {    "mulh3",    {"rhrhwh",        0x65fd    } },
  342. {    "divh2",    {"rhmh",        0x66fd    } },
  343. {    "divh3",    {"rhrhwh",        0x67fd    } },
  344. {    "cvthb",    {"rhwb",        0x68fd    } },
  345. {    "cvthw",    {"rhww",        0x69fd    } },
  346. {    "cvthl",    {"rhwl",        0x6afd    } },
  347. {    "cvtrhl",    {"rhwl",        0x6bfd    } },
  348. {    "cvtbh",    {"rbwh",        0x6cfd    } },
  349. {    "cvtwh",    {"rwwh",        0x6dfd    } },
  350. {    "cvtlh",    {"rlwh",        0x6efd    } },
  351. {    "acbh",    {"rhrhmhbw",        0x6ffd    } },
  352. {    "movh",    {"rhwh",        0x70fd    } },
  353. {    "cmph",    {"rhrh",        0x71fd    } },
  354. {    "mnegh",    {"rhwh",        0x72fd    } },
  355. {    "tsth",    {"rh",            0x73fd    } },
  356. {    "emodh",    {"rhrwrhwlwh",        0x74fd    } },
  357. {    "polyh",    {"rhrwab",        0x75fd    } },
  358. {    "cvthg",    {"rhwg",        0x76fd    } },
  359.                                         /* undefined opcodes here */
  360. {    "clrh",    {"wh",            0x7cfd    } },
  361. {    "clro",    {"wo",            0x7cfd    } },
  362. {    "movo",    {"rowo",        0x7dfd    } },
  363. {    "movah",    {"ahwl",        0x7efd    } },
  364. {    "movao",    {"aowl",        0x7efd    } },
  365. {    "pushah",    {"ah",            0x7ffd    } },
  366. {    "pushao",    {"ao",            0x7ffd    } },
  367.                                         /* undefined opcodes here */
  368. {    "cvtfh",    {"rfwh",        0x98fd    } },
  369. {    "cvtfg",    {"rfwg",        0x99fd    } },
  370.                                         /* undefined opcodes here */
  371. {    "cvthf",    {"rhwf",        0xf6fd    } },
  372. {    "cvthd",    {"rhwd",        0xf7fd    } },
  373.                                         /* undefined opcodes here */
  374. {    "bugl",    {"rl",            0xfdff    } },
  375. {    "bugw",    {"rw",            0xfeff    } },
  376.                                         /* undefined opcodes here */
  377.  
  378. {      ""       ,   ""          } /* empty is end sentinel */
  379.  
  380. };                /* votstrs */
  381.  
  382. /* end: vax.opcode.h */
  383.